package cn.piesat.mapper;

import cn.piesat.vo.resource.AddResourceVO;
import cn.piesat.vo.resource.UpdateResourceVO;
import cn.piesat.dto.PiesatResourceInfoDTO;
import cn.piesat.vo.resource.ResourceDetailVO;
import cn.piesat.vo.resource.ResourceVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 资源相关对象信息映射关系接口
 *
 * @author xhl
 */
@Mapper
public interface ResourceMapper {

    ResourceMapper INSTANCE = Mappers.getMapper(ResourceMapper.class);

    /**
     * 添加资源信息参数类 ------> 资源信息实体类
     * @param addResourceVO 添加资源信息参数对象
     * @return
     */
    PiesatResourceInfoDTO addResourceDtoToResourceDo(AddResourceVO addResourceVO);

    /**
     * 修改资源信息参数类 ------> 资源信息实体类
     * @param updateResourceVO 修改资源信息参数对象
     * @return
     */
    PiesatResourceInfoDTO updateResourceDtoToResourceDo(UpdateResourceVO updateResourceVO);

    /**
     * 资源信息实体类 ------> 资源信息前端列表展示类
     * @param piesatResourceInfoDTO 资源信息实体类
     * @return
     */
    ResourceVO resourceDoToResourceVo(PiesatResourceInfoDTO piesatResourceInfoDTO);

    /**
     * 资源信息实体类 ------> 资源详细信息前端展示类
     * @param piesatResourceInfoDTO 资源信息实体类
     * @return
     */
    ResourceDetailVO resourceDoToResourceDetailVo(PiesatResourceInfoDTO piesatResourceInfoDTO);
}
